﻿using System;
using System.Data;
using System.Text;
using AccesoDatos.DTO.Base;
using System.Runtime.Serialization;


namespace AccesoDatos.DTO
{
    [DataContract]
    public class ProfesorDTO :IDTO
    {
        #region Campos

        /// <summary>
        /// Define el codigo de profesor
        /// </summary>
        private int? coProfesor;

        /// <summary>
        /// Define el codigo de persona
        /// </summary>
        private int? coPersona;

        /// <summary>
        /// Nivel de estudios del profesor
        /// </summary>
        private string nivelEstudios;


        /// <summary>
        /// Definicion del dni de la persona
        /// </summary>
        private string dni;

        /// <summary>
        /// Definicion del nombre
        /// </summary>
        private string nombre;

        /// <summary>
        /// Definicion del primer apellido
        /// </summary>
        private string apellido1;

        /// <summary>
        /// Definicion del segundo apellido
        /// </summary>
        private string apellido2;

        /// <summary>
        /// Definicion del email
        /// </summary>
        private string email;



        /// <summary>
        /// Define la ruta de la imagen asociada al usuario
        /// </summary>
        private byte[] imagen;

        /// <summary>
        /// Cadena que almacenara la encriptacion de la contraseña
        /// </summary>
        private string userhash;

        /// <summary>
        /// Define el alias o nick que empleara la persona en la aplicacion
        /// </summary>
        private string nick;

        #endregion

        #region Propiedades

        /// <summary>
        /// Obtiene o establece el codigo del profesor
        /// </summary>
        [DataMember]
        public int? CoProfesor 
        {
            get { return coProfesor; }
            set { coProfesor = value; }
        }

        /// <summary>
        /// Obtiene o establece el codigo de persona
        /// </summary>
        [DataMember]
        public int? CoPersona 
        {
            get { return coPersona; }
            set { coPersona = value; }
        }

        /// <summary>
        /// Obtiene o establece el nivel de estudios del profesor
        /// </summary>
        [DataMember]
        public string NivelEstudios 
        {
            get { return nivelEstudios; }
            set { nivelEstudios = value; }
        }



        /// <summary>
        /// Obtiene o establece el valor del dni
        /// </summary>
        [DataMember]
        public string Dni
        {
            get { return dni; }
            set { dni = value; }
        }


        /// <summary>
        /// Obtiene o establece el nombre de la persona
        /// </summary>
        [DataMember]
        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        /// <summary>
        /// Obtiene o establece el primer apellido de Pefil
        /// </summary>
        [DataMember]
        public string Apellido1
        {
            get { return apellido1; }
            set { apellido1 = value; }
        }

        /// <summary>
        /// Obtiene o establece el segundo apellido del Perfil
        /// </summary>
        [DataMember]
        public string Apellido2
        {
            get { return apellido2; }
            set { apellido2 = value; }
        }

        /// <summary>
        /// Obtiene o establece el valor del email
        /// </summary>
        [DataMember]
        public string Email
        {
            get { return email; }
            set { email = value; }
        }


        /// <summary>
        /// Obtiene o establece el valor de la imagen
        /// </summary>
        [DataMember]
        public byte[] Imagen
        {
            get { return imagen; }
            set { imagen = value; }
        }

        /// <summary>
        /// Obtiene o establece el valor del userhash del usuario(referente a la contraseña
        /// previamente encriptada)
        /// </summary>
        [DataMember]
        public string Userhash
        {
            get { return userhash; }
            set { userhash = value; }
        }

        /// <summary>
        /// Obtiene o establece el nick de la persona
        /// </summary>
        [DataMember]
        public string Nick
        {
            get { return nick; }
            set { nick = value; }
        }


        #endregion
    }
}
